package com.alibaba.algo.cooperation.usercomponent.vo.res.user;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;
import java.util.Objects;

/**
 * @author Fan.tianpeng
 * @date 2021/4/27 15:11
 */
@Data
public class SelectEmployeeBaseAndOrgInfoResVO {
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof SelectEmployeeBaseAndOrgInfoResVO)) return false;
        SelectEmployeeBaseAndOrgInfoResVO that = (SelectEmployeeBaseAndOrgInfoResVO) o;
        return Objects.equals(id, that.id) &&
                Objects.equals(userId, that.userId) &&
                Objects.equals(employeeCode, that.employeeCode) &&
                Objects.equals(employeeName, that.employeeName) &&
                Objects.equals(mobilePhone, that.mobilePhone) &&
                Objects.equals(officePhone, that.officePhone) &&
                Objects.equals(officeAddress, that.officeAddress) &&
                Objects.equals(email, that.email) &&
                Objects.equals(employeeType, that.employeeType) &&
                Objects.equals(degree, that.degree) &&
                Objects.equals(politicalFace, that.politicalFace) &&
                Objects.equals(gender, that.gender) &&
                Objects.equals(professionalTitle, that.professionalTitle) &&
                Objects.equals(employeeEnglishName, that.employeeEnglishName) &&
                Objects.equals(employeeOrderNo, that.employeeOrderNo) &&
                Objects.equals(dataSource, that.dataSource) &&
                Objects.equals(orgList, that.orgList) &&
                Objects.equals(positionList, that.positionList) &&
                Objects.equals(orgAndPositionList, that.orgAndPositionList) &&
                Objects.equals(userAccount, that.userAccount);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, userId, employeeCode, employeeName, mobilePhone, officePhone, officeAddress, email, employeeType, degree, politicalFace, gender, professionalTitle, employeeEnglishName, employeeOrderNo, dataSource, orgList, positionList, orgAndPositionList, userAccount);
    }

    /**
     * 主键
     */
    private Long id;

    /**
     * sys_user表主键
     */
    private Long userId;

    /**
     * 工号
     */
    private String employeeCode;

    /**
     * 姓名
     */
    private String employeeName;

    /**
     * 手机号码
     */
    private String mobilePhone;

    /**
     * 办公电话
     */
    private String officePhone;

    /**
     * 办公地址
     */
    private String officeAddress;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 员工类型 1外包 2内部
     */
    private Long employeeType;

    /**
     * 学历
     */
    private String degree;

    /**
     * 政治面貌
     */
    private String politicalFace;

    /**
     * 性别
     */
    private String gender;
    /**
     * 职称
     */
    private String professionalTitle;
    /**
     * 英文名
     */
    private String employeeEnglishName;
    /**
     * 排序编号
     */
    private String employeeOrderNo;
    /**
     * 排序编号
     */
    private String dataSource;

    /**
     * 组织列表
     */
    private List<EmployeeOrgResVO> orgList;

    /**
     * 岗位列表
     */
    private List<EmployeePositionResVO> positionList;

    /**
     * 组织和岗位信息
     */
    private List<EmployeeOrgAndPositionResponseVO> orgAndPositionList;

    /**
     * 用户账号
     */
    private String userAccount;

    /**
     * 数据状态 Y-已删除|N-未删除
     */
    private String isDeleted;

    /**
     * 公司名称
     */
    private String companyName;
}
